The present invention is directed to a method for implementing a computer simulation of sustained contact between distinct objects, such that realistic effects of the physical forces exerted on each object by the other during such contact are observed, and such that the use of network bandwidth or communications resources between the objects is greatly reduced.
Computer software has long been able to simulate and display contact between objects. The three primary contexts in which such software is used are video games, defense-related simulations, and industrial engineering simulations.
Computer software designed to simulate Newtonian interactions between objects, e.g., exchange of momentum, frictional force exchange, contact force exchange, elastic and inelastic collisions, etc., has been in existence for decades. The applications of such software have ranged from such low fidelity purposes as simple bouncing interactions between objects in a video game, to high fidelity interactions such as a military engineering simulation of the effect of a missile during its impact with a target. The low fidelity interactions of video games aren't necessarily modeled with accurate Newtonian physics models. The purpose of a video game is to entertain the user, and not to accurately represent physical reality. The military engineering simulation, however, is specifically designed to be as close to reality as possible. It therefore uses the most accurate physics models available. There are a range of applications in between these two extremes, where physical reality is traded off against other factors such as computational resource requirements (i.e., computer power).
Another tradeoff in simulation software design is time. Simulations are commonly designed to divide time into small slices, commonly called "frames." During a frame, the state of the simulation is held frozen in time such that the behaviors of objects from the previous frame can be individually propagated into the current frame. Frame lengths can vary from extremely short time values to extremely long ones. The missile example described in the previous paragraph may take only one one-thousandth of a second (one millisecond) to complete its entire interaction. A simulation designed to accurately predict the behaviors of the missile and the target may need to simulate thousands of intermediate points in time between the start and end of the interaction. This would lead to a frame time on the order of one one-millionth of a second (one microsecond). A modern day computer performing the simulation could not possibly complete the computational tasks required for a frame within only one microsecond. It may take several seconds of real time to simulate one microsecond of simulated time. This type of simulation is termed "slower than real-time." Further along this time spectrum, a video game, or a flight simulator, would have a frame time equal to real-time. This is because the simulation is interacting with a human, who would be distracted from his training task, or his entertainment, if the simulation ran slower or faster than the real world. This type of simulation is called "real-time." On the other end of the spectrum, a geologist may observe a simulation of the motion of continental plates. One simulation frame may represent one million years, but be simulated by the computer in less than one second. This type of simulation is termed "faster than real-time."
When several objects are simulated within the same computer program, simulating Newtonian interactions between them is a fairly simple task. During a frame, all objects are frozen in time, their dynamic and kinematic states are known and under control, and their new states after collisions and force exchanges can be computed for the next frame. This technique has been the most common method for computing Newtonian interactions between simulation objects. When objects are not simulated in the same computer program, or are simulated on different computers, the task of simulating Newtonian interactions is much more difficult, because there is less timing coordination and control over the dynamics and kinematics of the objects.
The Department of Defense has developed a real-time simulation technology called "Distributed Interactive Simulation" or DIS. DIS is a simulation technology which utilizes a standard networking protocol (known as the DIS Protocol) to allow autonomous simulation node computer systems to communicate the state of locally simulated objects to other nodes on the network. These independent nodes can each simulate a number of objects, otherwise known as DIS "entities." The DIS Protocol provides a very loose coupling between these entities. There are several advantages to this type of architecture which makes it ideal for simulating very large numbers of entities in the same virtual environment. The invention described herein can be used with the DIS Protocol or any similarly architected network protocol. There is an abundance of literature on DIS available from the federal government. The following paragraphs give a brief description of its advantages.
The DIS Protocol currently consists of some 27 different network packets which are passed between simulation nodes. The application specific information is encapsulated in TCP/IP/UDP Ethernet frames, but any low-level networking layers can also be used. The packets may be sent over any network media, from modems working over voice grade phone lines, to Asynchronous Transfer Mode (ATM) switches. More network bandwidth allows more entities to be supported. The packets describe things such as state information of dynamic entities, combat events (firing, detonation), resupply interactions, electromagnetic emissions (light, radar, energy weapons), etc.
One of the unique novelties of DIS is the predictive algorithms which allow entities on the network to greatly reduce the frequency of rebroadcasts of state. Each entity broadcasts its type, location, velocity, acceleration, orientation, and angular velocity in the form of a DIS Entity State Packet. All the receiving simulators can then propagate the sending entity into the future, relieving the sending entity of the responsibility to continually rebroadcast. When the error between the exact position of the entity and the predicted position exceeds a certain threshold, the sending entity will update the network with its new kinematic state. The DIS Entity State Packet, which contains this kinematic information and makes up most of the network traffic in the DIS protocol, is about 140 bytes long, and is broadcast anywhere from once every 5 seconds, to four to five times per second.
This architecture provides very flexible tradeoffs between computational loading, positional error, and network bandwidth. If highly accurate position information is required, such as in some military experiments, the error threshold may be reduced, which will result in more network broadcasts of state. Conversely, if the only network bandwidth available is a 9600 baud modem, and 25 entities are required on the system, the error thresholds can be increased, and more compute-intensive prediction algorithms can be used on the receiving ends. State-of-the-art DIS systems currently in use by the federal government are running up to 8000 entities on Ethernets, long haul networked from several locations.
The DIS protocol is self-healing. When a new entity enters the DIS world, it begins to broadcast Entity State packets. If recipients have never heard from this entity before, they simply add it to their remote entity database. If an entity is not heard from within five seconds, recipients will time it out, removing it from their remote entity database. Players can enter and leave at will without disturbing other participants (other than their appearance and disappearance), and dropped packets don't cause system failure. In this architecture there is no central server, thus no single point of failure.
As described above, DIS uses prediction algorithms to help reduce continual rebroadcast of state messages from simulation entities. The advantage of this approach is that many more entities can interact in the same virtual environment, but the penalty of this approach is that the perceived dynamic and kinematic state of remote entities is always an estimation which contains some positional error and time delay (due to network latency). This makes the simulation of sustained contact between DIS entities very difficult. DIS currently has no mechanisms for implementing sustained contact, though the capability is highly desired. This invention provides the capability to simulate these sustained contacts between remote entities on a network, while keeping network bandwidth usage to a minimum.
There are several needs for this capability in the DIS simulation domain. These include: logistics interactions (resupply), combat engineering functions (towing, bridge building, obstacle construction), aircraft carrier landings and launchings, etc. In the non-military domain, networked simulations for surgical training, entertainment, etc. will require tactile and force-feedback interactions between human participants in addition to all other kinds of contact. Protocols similar in nature to DIS will likely be used for these non-military systems. A DIS-type architecture is very suitable to distributed arcade systems, video games, virtual reality systems, etc. Next generation home-based virtual reality systems which will be networked to other such systems will undoubtedly use a networking approach similar to DIS. SIMNET and NPSNET are two additional examples of DIS-like protocols known in the prior art. It is therefore apparent that the present invention, which addresses the need for implementing simulated sustained contact, has valuable applications in both commercial and defense systems.